g_free (text);
}
-static gboolean
-entry_focus_out (GtkWidget *entry,
- GdkEventFocus *event,
- GtkColorEditor *editor)
+static void
+entry_focus_changed (GtkWidget *entry,
+ GParamSpec *pspec,
+ GtkColorEditor *editor)
{
- entry_apply (entry, editor);
- return FALSE;
+ if (!gtk_widget_has_focus (entry))
+ entry_apply (entry, editor);
}
static void
gtk_widget_class_bind_template_callback (widget_class, get_child_position);
gtk_widget_class_bind_template_callback (widget_class, entry_text_changed);
gtk_widget_class_bind_template_callback (widget_class, entry_apply);
- gtk_widget_class_bind_template_callback (widget_class, entry_focus_out);
+ gtk_widget_class_bind_template_callback (widget_class, entry_focus_changed);
gtk_widget_class_bind_template_callback (widget_class, popup_edit);
}
</object>
</child>
<signal name="activate" handler="entry_apply" swapped="no"/>
- <signal name="focus-out-event" handler="entry_focus_out" swapped="no"/>
+ <signal name="notify::has-focus" handler="entry_focus_changed" swapped="no"/>
<signal name="notify::text" handler="entry_text_changed" swapped="no"/>
</object>
<packing>